package br.ifrn.poo.controle;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.swing.JOptionPane;

import com.mysql.jdbc.Statement;
import br.ifrn.poo.aplicacao.FormCliente;
import br.ifrn.poo.usuario.Cliente;

public class CrudCliente {
	public void cadCliente(Cliente cliente){
		
		try {
       	 String url = "jdbc:mysql://localhost/locacao_veiculos";
            Connection conn = DriverManager.getConnection(url,"root","59010380");
            Statement stmt = (Statement) conn.createStatement();
            
            String sql = "INSERT INTO cliente (idcliente,cpf,nome,endereco,data_nascimento,rg,status,id_atendente)" +
            		" VALUES (null,'"+cliente.getCpf()+"','"+cliente.getNome()+"','"+cliente.getEndereco()+"'," +
            			"'"+cliente.getData_nascimento()+"','"+cliente.getRg()+"','"+cliente.getStatus()+"'," +
            				"'"+cliente.getid_atendente()+"')";
            stmt.execute(sql);
            JOptionPane.showMessageDialog(null, "Cliente inserido!");
            stmt.close();
            
       }
       catch(Exception e){
       	JOptionPane.showMessageDialog(null, "Erro ao inserir!");
       }
		
	}
	
	public boolean pesquisarCpfCliente(String cpf) throws SQLException{
		String url = "jdbc:mysql://localhost/locacao_veiculos";
		Connection conn = DriverManager.getConnection(url,"root","59010380");
		Statement stmt = (Statement) conn.createStatement();
		ResultSet rs;

		rs = stmt.executeQuery("SELECT * FROM cliente WHERE cpf=" +
				"'"+cpf+"'");
		rs.next();
		if(cpf.equalsIgnoreCase(rs.getString("cpf"))){
			return true;
		}
		else{
			return false;
		}
	}
	
	public boolean excluirCliente(int linha) throws SQLException{
		String url = "jdbc:mysql://localhost/locacao_veiculos";
		Connection conn = DriverManager.getConnection(url,"root","59010380");
		Statement stmt = (Statement) conn.createStatement();
		ResultSet rs;
		
		String sql = "DELETE FROM cliente WHERE idcliente="+linha;
		stmt.executeUpdate(sql);  
		
		return true;
	}
	
	public ArrayList<Cliente> pegarDadosCliente(int linha) throws SQLException{
		ArrayList<Cliente> cliente = new ArrayList<Cliente>();
		Cliente objCliente = new Cliente();
		String url = "jdbc:mysql://localhost/locacao_veiculos";
        Connection conn = DriverManager.getConnection(url,"root","59010380");
        Statement stmt = (Statement) conn.createStatement();
        ResultSet rs;
        
        rs = stmt.executeQuery("SELECT * FROM cliente WHERE idcliente = " +linha);
		rs.next();
		
		objCliente.setCpf(rs.getString("cpf"));
		objCliente.setNome(rs.getString("nome"));
		objCliente.setEndereco(rs.getString("endereco"));
		objCliente.setData_nascimento(rs.getString("data_nascimento"));
		objCliente.setRg(rs.getString("rg"));
		objCliente.setid_atendente(Integer.parseInt(rs.getString("id_atendente")));
		
		cliente.add(objCliente);
		return cliente;
	}
	
	public void alterarCliente(Cliente cliente, int idcliente) throws SQLException{
		String url = "jdbc:mysql://localhost/locacao_veiculos";
        Connection conn = DriverManager.getConnection(url,"root","59010380");
        Statement stmt = (Statement) conn.createStatement();
        ResultSet rs;
		
		String sql = "UPDATE cliente SET cpf='"+cliente.getCpf()+"', nome='"+cliente.getNome()+"'," +
				"endereco='"+cliente.getEndereco()+"', rg='"+cliente.getRg()+"'" +
						" WHERE idcliente="+idcliente;
		
		try {
			int updateCount = stmt.executeUpdate(sql);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  
		
	}
}
